Kapitel 18 Menü-, Symbol- und Statusleiste
Was wäre eine Windows-Anwendung ohne Menü und Symbolleiste? Die meisten Anwendungen verwenden diese Elemente, um dem Anwender eine einfache und möglichst auch intuitive Navigation durch die von der Anwendung angebotenen Features anzubieten. Mit den Menüs werden wir uns in diesem Kapitel ebenso beschäftigen wie mit der Statusleiste und den Kontextmenüs.
Wenn Sie in der Vergangenheit mit dem Visual Studio 2002/2003 gearbeitet haben, werden Sie vermutlich sehr schnell die gewohnten Steuerelemente MainMenu, ToolBar, ContextMenu und StatusBar in der Toolbox vermissen. Tatsächlich werden diese dennoch weiterhin auch vom .NET Framework 2.0 angeboten, um Abwärtskompatibilität zu gewährleisten. Wenn Sie die altbewährten Steuerelemente einsetzen wollen, müssen Sie sie jedoch ausdrücklich der Toolbox hinzufügen. Behandeln werden wir die »alten« Steuerelemente in diesem Buch nicht. Es ist aber auch nicht besonders schwierig, sich mit deren Eigenheiten vertraut zu machen. Im Großen und Ganzen sind es nur abgespeckte Versionen der neuen Steuerelemente:
|
ContextMenuStrip |
|
MenuStrip |
|
StatusStrip |
|
ToolStrip |
Diese erstmals im .NET 2.0 enthaltenen neuen Steuerelemente zeigen sich im Layout der Komponenten von Office 2003 und bieten neben einer einheitlichen, deutlich verbesserten Programmierschnittstelle auch erweiterte Funktionalitäten, insbesondere hinsichtlich der Positionierung. Hervorgehoben werden muss ebenfalls, dass die Möglichkeiten der visuellen Gestaltung weitaus ausgefeilter sind und nur noch wenig Wünsche offen lassen. Darüber hinaus lässt sich die neue Steuerelementfamilie auch als Host untergeordneter Controls verwenden. So können Sie jetzt beispielsweise im Hauptmenü einer Form ein Kombinationslistenfeld anbieten – auch wenn sich das bisher noch nicht bei vielen Anwendungen durchgesetzt hat.
Ziehen Sie eines der neuen Strip-Controls direkt in die Form, können Sie bereits von vielen Neuerungen profitieren, aber eine bleibt Ihnen in diesem Fall verwehrt: die individuelle Positionierung der Symbolleiste zur Laufzeit. Was darunter zu verstehen ist, können Sie anhand der Entwicklungsumgebung des Visual Studio nachvollziehen. Wahrscheinlich werden Sie mehrere Symbolleisten aktiviert haben. Mit dem Mauszeiger lässt sich eine Symbolleiste am linken gepunkteten Ende greifen und mittels Drag & Drop in eine andere Position ziehen. Alle anderen Symbolleisten, auch die der Menüleisten, passen sich automatisch der Neupositionierung der gezogenen Symbolleiste an. Sie können eine Symbolleiste auch am linken, rechten oder unteren Rand der IDE andocken – wenn Ihnen das gefällt.
Dieses Verhalten können Sie mit den neuen Steuerelementen für eine Symbol-, aber auch Menüleiste bereitstellen. Allerdings muss ich an dieser Stelle auch erwähnen, dass es mir nicht gelungen ist, mit dem Steuerelement ToolStrip eine Symbolleiste zu erzeugen, die außerhalb des Randbereichs der Form das Layout einer Form im Toolfensters annimmt. Für diese Features müssen wir wohl auf eine zukünftige Version der Steuerelemente warten.
18.1 Das Steuerelement »ToolStripContainer«
 
Das Repositionieren von Menü- und Symbolleiste funktioniert nur, wenn das dazu benötigte Management von einem Steuerelement übernommen wird, das dazu auch in der Lage ist, denn die Form kann das nicht. Bei diesem handelt es sich um das ToolStripContainer-Control. Sie finden das Steuerelement unter anderem unter der Lasche Menüs & Symbolleisten in der Toolbox.
In Abbildung 18.1 sehen Sie das Steuerelement nach dem Ziehen aus der Toolbox in die Form. Es gliedert sich in insgesamt fünf Bereiche: vier Seitenbereiche und einen zentralen Bereich. Die Seitenbereiche, die über Laschen geöffnet werden können, dienen dazu, Menü-, Symbol- und Statusleiste aufzunehmen und die Positionierung dieser drei Elemente in Abhängigkeit von der oder den Symbolleisten im Hintergrund zu verwalten. Der Zentralbereich nimmt die Steuerelemente auf, welche die eigentliche Funktionalität der Form ausmachen.
Ein ToolStripContainer dient als Host untergeordneter Strip-Controls und wird deshalb in der Regel den gesamten Clientbereich der Form einnehmen. Sie erreichen das in gewohnter Weise mit der Einstellung Dock=DockStyle.Fill oder indem Sie im SmartTag-Hilfsfenster den Link Ausfüllformular andocken auswählen. Hier können Sie auch entscheiden, an welchen Seitenrändern die Symbol- und Menüleisten zur Laufzeit andockbar sein dürfen. Möchten Sie die Entscheidung auf einen späteren Zeitpunkt vertagen oder die vorgenommene Auswahl ändern, stehen Ihnen dazu die Eigenschaften BottomToolStripPanelVisible, LeftToolStripPanelVisible usw. zur Verfügung.
 Hier klicken, um das Bild zu vergrößern
Abbildung 18.1 Das Steuerelement »ToolStripContainer«
Die vier Seitenbereiche werden durch Objekte vom Typ ToolStripPanel beschrieben. Das Erscheinungsbild dieses Typs können Sie über Eigenschaften wie BackColor oder BackGroundImage beeinflussen.
Nur Strip-Steuerelemente, die später in den einen der vier Seitenbereiche gezogen werden, können vom ToolStripContainer verwaltet werden. Alle anderen Controls werden vom ToolStripContainer nicht erfasst. Jedes Panel kann auch mehrere Strip-Controls enthalten.
Der zentrale Bereich, beschrieben durch den Typ ContentPanel, enthält die Steuerelemente, welche die Funktionalität des Fensters beschreiben, also Text- und Listboxen, Buttons usw. Dazu enthält ContentPanel eine ControlCollection, der alle Steuerelemente hinzugefügt werden, während ContentPanel selbst Mitglied der typgleichen Auflistung der Form ist. |